There has been a move toward so-called heterogeneous computing architectures. In heterogeneous computing architectures, a program, referred to as a kernel, may be compiled using a framework such that a variety of different types of processors, such as a CPU (Central Processing Unit), GPU (Graphics Processing Unit), FPGA (Field Programmable Gate Array), etc., may execute the kernel. Recent frameworks that support heterogeneous computing include the OpenCL framework, as well as the DirectCompute framework.